//曾凡诚、张译文
#include "gprice.h"
#include "ui_gprice.h"
#include "Code/Component/ComponentParam.h"

GPrice::GPrice(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::GPrice)
{
    ui->setupUi(this);
    setWindowTitle("电价属性"); // 设置窗口标题（匹配电价组件功能）
}

GPrice::~GPrice()
{
    delete ui;
}

// 获取电价（从UI的priceEdit控件读取，与其他组件的输入控件命名逻辑一致）
double GPrice::getPrice() const
{
    return ui->priceEdit->text().toDouble();
}

// 确定按钮：关闭对话框并返回成功状态（与所有组件的确认逻辑完全对齐）
void GPrice::on_confirmBtn_clicked()
{
    accept(); // 关闭对话框，返回QDialog::Accepted
}

// 取消按钮：关闭对话框并返回失败状态（统一所有组件的取消逻辑）
void GPrice::on_cancelBtn_clicked()
{
    reject(); // 关闭对话框，返回QDialog::Rejected
}

// 按钮盒确认按钮（提交电价参数更新，核心逻辑与其他组件一致）
void GPrice::on_buttonBox_accepted()
{
    ComponentParam param;
    param.id = 6; // 电价的唯一标识ID（按约定区分：负载4、电网5、电价6）
    param.type = "电价"; // 明确组件类型为“电价”
    param.currentPower = this->getPrice(); // 读取界面输入的电价（复用currentPower字段存储数值）

    emit paramsUpdated(param); // 发射信号，传递更新后的电价参数
    accept(); // 关闭对话框

    // 调试输出（保持与其他组件一致的日志格式）
    qDebug() << "emit paramsUpdated(param) [电价]";
    qDebug() << "id=" << param.id << ", type=" << param.type << ", currentPrice=" << param.currentPower;
}
